package u10.Ejercicios.Ejercicio12;

public class Gato implements Comparable {
	private String nombre;
	private float peso;
	
	public Gato(String nombre, float peso){
		this.nombre=nombre;
		this.peso=peso;
	}
		
	public String getNombre(){
		return this.nombre;
	}
	
	public float getPeso(){
		return this.peso;
	}
	
	public void saludar() {
		System.out.println("MIAU");
	}
	
	public String toString(){
		String cadena="";
		cadena="(G) "+this.nombre+" "+this.peso;
		return cadena;
	}
	
	public boolean equals(Object o){
		boolean sol=false;
		try{
			if(this.nombre.equals(((Gato)o).nombre) && this.peso==((Gato)o).peso){
				sol=true;
			}
		}
		catch (Exception e){}
		return sol;
	}

	@Override
	public int compareTo(Object o) {
		int sol=-1; //partimos de aqui porque es el menor de todos los objetos
		if(o instanceof Gato){
			if(this.nombre.compareTo(((Gato)o).nombre)>0){
				sol=1;
			}else if(this.nombre.equals(((Gato)o).nombre)){
				if(this.peso<((Gato)o).peso){
					sol=1;
				}else if(this.peso==((Gato)o).peso){
					sol=0;
				}
			}
		}
		return sol;
	}
	
	public int hashCode(){
		return this.nombre.charAt(0);
	}
	
}
